package com.game.system.domain.template;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class TemplateInfo implements Serializable {
    /**
     * 控件类型
     */
    private String controlType;

    /**
     * 标签名称
     */
    private String label;

    /**
     * 控件值
     */
    private Object value;

    /**
     * 提示信息
     */
    private String placeholder;

    /**
     * 是否禁用修改
     */
    private Boolean disable;

    /**
     * 是否必填
     */
    private Boolean required;


    /**
     * 控件宽度
     */
    private String width;

    /**
     * 选项列表
     * 用于下拉框、单选框、多选框的选项
     */
    private List<Option> options;

    /**
     * 计数器的限制
     */
    private Number number = new Number();

    @Data
    public static class Option {
        /**
         * 选项标签
         */
        private String label;
        /**
         * 选项值
         */
        private String value;
    }

    @Data
    public static class Number {
        /**
         * 选项标签
         */
        private int min;
        /**
         * 选项值
         */
        private int max;
        /**
         * 步长
         */
        private int step = 1;
        /**
         * 默认值
         */
        private int value;
    }
}
